home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / EF11.ZIP;1 / EFMAN.DOC < prev    next >
Encoding:
Text File  |  1993-01-20  |  36.2 KB  |  698 lines

  1.  
  2.          …ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕª
  3.          ∫  EasyFold version 1.1 User Guide  ∫
  4.          »ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕº
  5.  
  6. NOTE: This file is "folded"; edit "FOLD.HLP" for lesson on how to use 
  7. folds.
  8.  
  9. /*HS!!1*/      1. INTRODUCTION
  10.  
  11. EasyFold is a simple-to-use folding editor. A "conventional editor with 
  12. folds" rather than a "folding editor".
  13.  
  14. If you don't use folds, EasyFold will operate as an ordinary editor.
  15.  
  16. If you don't already know what folds are, then you can get a 
  17. demonstration by editing "FOLD.HLP" and following the instructions.
  18.  
  19. Folds put into your files will appear as comments with the format 
  20. depending on the file extension. For example if the file ends in .BAS 
  21. (basic) the fold information will appear after REM statements. This means 
  22. that files edited with EasyFold will compile or run normally. Extensions 
  23. recognised by easy fold are, .C .CPP .BAS .PAS .ASM .TEX .BAT .PRO and 
  24. .MOD.
  25.  
  26. /*HH1!1*/      2. FEATURES
  27.  
  28. EasyFold has all the usual features you expect from an editor plus...
  29.  
  30. * Folding. See chapter 4.
  31. * Search and replace across multiple buffers.  See chapter 5.
  32. * Menu or keystroke driven.
  33. * Mouse support.
  34. * Edit up to 100 files at once. See section 3.13.
  35. * Split screen editing.  See section 3.14.
  36. * Live word wrap.  See chapter 6.
  37. * Switchable between line modes inc SVGA modes. See section 13.2.
  38. * Rolling back-up system.  See section 12.3.
  39. * Remembers previous, searched for, strings.  See chapter 5.
  40. * Execute lines as DOS commands.  See chapter 7.
  41. * One and two letter macros.  See chapter 9.
  42. * Repeat macro until fail.  See section 9.6.1.
  43. * Batch mode.  See section 9.6.2
  44. * Mouse macros.  See section 9.5.
  45. * Access to global variables to enhance power of macros. See chapter 9
  46. * Bracket matching.  See section 12.1
  47. * Auto locating files  See section 3.3.6.
  48. * Reconfigurable keyboard.  See chapter 11.
  49.  
  50. /*HH121*/      3. HOW TO EDIT A FILE
  51.  
  52. /*HS!!2*/3.1. Running EasyFold
  53.  
  54. To edit a file, say "TEST.DOC", you type..
  55.  
  56. EF TEST.DOC
  57.  
  58. from the command line.
  59.  
  60. To edit more than one file at a time you simply type the names one after 
  61. the other separated by spaces. The file names may include wildcard 
  62. characters, for example
  63.  
  64. EF *.C *.DOC INFO.DAT
  65.  
  66. would be a valid command line. See section 3.13 for how to switch between 
  67. files.
  68.  
  69. Another way of editing a large number of files from the command line is 
  70. to make an ASCII file containing the names of the files you wish to edit 
  71. (one file per line) and then type "ED @XXX" where XXX is the name of the 
  72. list file.
  73.  
  74. If you type "EF" without any parameters, EasyFold will attempt to load 
  75. the same files as in the previous editing session.
  76.  
  77. /*HH232*/3.2. Using the Menus
  78.  
  79. /*HS!!3*/    3.2.1. Using the Menus With a Mouse
  80.  
  81. To access the menus with a mouse, first of all move the mouse pointer to 
  82. the very top line of the screen, a selection of menus will now appear. 
  83. Click (and release) the mouse pointer on the menu you wish to select. The 
  84. menu will now appear. You may change menus by moving the mouse pointer 
  85. along the top line. To select an individual item in a menu, move the 
  86. mouse pointer over that item and click the mouse button.
  87.  
  88. /*HH3!3*/    3.2.2. Using the Menus From the Keyboard
  89.  
  90. To access the menus from the keyboard press <F1>. A menu will now appear. 
  91. To choose between different menus use the <Left> and <Right> keys. To 
  92. select an individial item from a menu either use <Up> and <Down> and then 
  93. type <Enter> or alterantively simply type the highlighted character in 
  94. the options.
  95.  
  96. /*HH232*/3.3. Loading and Saving files
  97.  
  98. /*HS!!3*/    3.3.1. Load
  99.  
  100. To load a file, select "Load" from the "File" menu or type <Esc> then 
  101. <L>. You will the be asked for the name of the file you wish to load. If 
  102. you have already loaded files via the load command you will be able to 
  103. recall previous filenames by typing <Up> or <Down>
  104.  
  105. If you enter a name containing wildcard characters you will then be able 
  106. to select from a menu of files fitting that wildcard.
  107.  
  108. /*HH3!3*/    3.3.2. Save
  109.  
  110. To save a file, select "Save" from the "File" menu or type <Esc> then <S>.
  111.  
  112. /*HH3!3*/    3.3.3. Save and Exit
  113.  
  114. To save a file and immediatly exit the program, select "Save & Exit" from 
  115. the "File" menu or type <Esc> then <X>.
  116.  
  117. /*HH3!3*/    3.3.4. Save As
  118.  
  119. To save a file under a given name, select "Save As" from the "File" menu 
  120. or type <Esc> then <A>. You will then be asked to type in the name of the 
  121. file.
  122.  
  123. /*HH3!3*/    3.3.5. Insert From File
  124.  
  125. To insert a file into the current buffer at the position of the cursor, 
  126. select "Insert From File" from the "File" menu or type <Esc> then <I>. 
  127. You will then be asked for the name of the file you wish to Insert.
  128.  
  129. /*HH3!3*/    3.3.6. Special Files
  130.  
  131. Any file with the extension ".EF" will always be read and written to the 
  132. editors working directory. This is usefull for often used files which you 
  133. want to access from anywhere. For example you may keep a small ".EF" file 
  134. containing your name and address for insertion into documents.
  135.  
  136. NOTE: The location of the editors working directory is determined in the 
  137. following order of priorities.
  138.  
  139. 1. The dierctory specified by an environment variable "EFWORK".
  140.  
  141. 2. The directory specified by an environment variable "HOME".
  142.  
  143. 3. The directory that the editor executable is in.
  144.  
  145. /*HH232*/3.4. Entering Text
  146.  
  147. /*HS!!3*/    3.4.1. Insert/Overtype
  148.  
  149. To toggle between these type <Ins>. In overtype mode there will be a 
  150. letter `O' on the top line of the display.
  151.  
  152. /*HH3!3*/    3.4.2. Entering Control Characters
  153.  
  154. To enter ASCII characters below ASCII 32 select "Enter Control Char" from 
  155. the "misc" menu or type <Ctrl><C>. You may then enter any character 
  156. except ASCII 0,1,2 and 26 which are reserved for use by EasyFold.
  157.  
  158. /*HH3!3*/    3.4.3. Entering ASCII Characters Above 127
  159.  
  160. If you wish to wish to enter ASCII characters above 127 into your file 
  161. you may select them from a display. The display can be summond by 
  162. selecting "Symbols Menu" from the "misc" menu or by typing <Ctrl><F1>. 
  163. You may then select a character by positioning the highlight box over the 
  164. character and pressing <Enter>.
  165.  
  166. /*HH232*/3.5. Moving Around
  167.  
  168. If you have a mouse then clicking the left hand mouse button will take 
  169. you to wherever the mouse is situated. The right hand mouse button is 
  170. reserved for opening and closing folds, see chapter 4.
  171.  
  172. If you have a mouse and you move the mouse pointer up to the top line of 
  173. the screen you will notice that on the right you will see the words "up" 
  174. and "down". You may click on these to scroll the screen.
  175.  
  176. <Ctrl><Home> and <Ctrl><End> scroll the screen leaving the cursor at the 
  177. same position in the file.
  178.  
  179. EasyFold uses <F9> and <F10> to take you to the top and bottom of a file 
  180. respectively.
  181.  
  182. <Home> and <End> take you to the start and end of a line.
  183.  
  184. <Ctrl><left> and <Ctrl><right> take tou to the beggining and and of the 
  185. previous and next words respectively.
  186.  
  187. To goto a particular line in a file select "Goto Line" from the "Edit" 
  188. menu or type <Ctrl><G>. You will then be asked to enter the line number.
  189.  
  190. /*HS!!3*/    3.5.1. Position Markers
  191.  
  192. EasyFold allows you to store the current cursor position and come back to 
  193. it later or to swap between two positions in the text.
  194.  
  195. To store the current cursor position select "Mark Position" from the 
  196. "Edit" menu or type <F7>.
  197.  
  198. To go back to the stored position select "Goto Mark" from the "Edit" menu 
  199. or type <F8>.
  200.  
  201. To go back to the stored position while making your current position into 
  202. the stored position select "Swap Marks" from the "Edit" menu or type 
  203. <Ctrl><F8>.
  204.  
  205. /*HH2!2*/3.6. Selecting a Block of text
  206.  
  207. If you have a mouse you may select a block of text by first clicking the 
  208. mouse on the point at which you wish to start and then, leaving your 
  209. finger on the mouse, drag the mouse pointer to where you wish the block 
  210. to end. If you do not have a mouse type <F3> at the start of the block 
  211. and the move the cursor to the end of the block.
  212.  
  213. To un-select a block press <Esc> twice.
  214.  
  215. Selecting a block in itself has no effect on the file, selecting is 
  216. merely the first part of many different operations.
  217.  
  218. * Copy/Move to Workspace
  219.  
  220. * Print block
  221.  
  222. * Delete
  223.  
  224. * Block Tab
  225.  
  226. * Case Manipulation
  227.  
  228. /*HH2!2*/3.7. Deleting a Selected Block of Text
  229.  
  230. To delete a block of text, first select it as described in section 3.6, 
  231. then type <Del>.
  232.  
  233. /*HH2!2*/3.8. Block Tab/Un-Tab
  234.  
  235. To insert tab characters at the start of all the lines within a block, 
  236. select it as described in section 3.6, then type tabkey. To remove tabs 
  237. type <shift><tab>.
  238.  
  239. /*HH2!2*/3.9. Block Case Manipulation
  240.  
  241. You can perform several case manipulations on a highlit block of text.
  242.  
  243. * Change all characters to upper case
  244. * Change all characters to lower case
  245. * Swap the case of all characters
  246. * Maket the first letter of each word upper case
  247.  
  248. To perform these operations on a block, select it as described in section 
  249. 3.6, then select "Case operation" from the "Edit" menu or type <Ctrl><V>. 
  250. You will then be prompted to enter a character corresponding to one of 
  251. the four options.
  252.  
  253. If you select "Case operation" from the "Edit" menu or type <Ctrl><V> 
  254. when no block has been selected, the case of the individual character the 
  255. cursor is under will be swapped and the cursor advanced one character.
  256.  
  257. /*HH2!2*/3.10. The Workspace
  258.  
  259. EasyFold uses the concept of a "workspace" or "scratchpad", this is 
  260. simply an area of memory in which bits of text can be stored temporarily. 
  261. It can store only one piece of text at a time and so if new text is 
  262. copied into the workspace the old text will be lost. The first few 
  263. characters of the workspace are always shown on the bottom line of the 
  264. editing screen.
  265.  
  266. /*HH2!2*/3.11. Cut, Copy and Paste
  267.  
  268. Cut and paste works using the workspace.
  269.  
  270. To copy a block of text to the workspace first of all highlight it as 
  271. described in section 3.6, then select "copy block to workspace" from the 
  272. "edit" menu or type <F3>.
  273.  
  274. To move (cut) a block of text to the workspace first of all highlight it 
  275. as described in section 3.6, then select "move block to workspace" from 
  276. the "edit" menu or type <Alt><F3>.
  277.  
  278. To insert (paste) the content of the workspace into your file select 
  279. "insert workspace into file" from the "edit" menu or type <F4>.
  280.  
  281. /*HH2!2*/3.12. Merging One File Into Another
  282.  
  283. You may insert the contents of a file on disc into the file you are 
  284. editing by simply selecting "insert from file" from the "file" menu or 
  285. typing <Esc> then <I>, you will then be asked for the name of the file to 
  286. insert.
  287.  
  288. /*HH232*/3.13. Editing More Than One File at a Time
  289.  
  290. /*HS!!3*/    3.13.1. Buffers
  291.  
  292. EasyFold can edit up to 100 buffers simultaneously, if there is not 
  293. enough memory to hold all the files you are editing then EasyFold will 
  294. automatically put buffers in temporary files transparently.
  295.  
  296. /*HH3!3*/    3.13.2. Switching Between Buffers
  297.  
  298. There are many ways of switching between buffers.
  299.  
  300. Pressing <Alt> and a digit 1-9 will take you to buffers 1-9.
  301.  
  302. If you type <Alt><=> you will be taken to the next buffer.
  303.  
  304. If you type <Alt><-> you will be taken to the previous buffer.
  305.  
  306. If you have a mouse, move it up to the top line where you may select 
  307. "buffers" this then takes you  to a screen displaying all the 100 
  308. buffers, you may select a buffer by simply clicking the mouse on the 
  309. appropriate one. If you do not have a mouse you may get to the selection 
  310. screen by selecting"Buffer Selection" from the "File" menu or typing 
  311. <Esc> then <B>
  312.  
  313. If you type <Esc> then <E> you will be asked to type in the number of the 
  314. buffer you wish to select.
  315.  
  316. /*HH3!3*/    3.13.3. Abort Buffer
  317.  
  318. To abort the editing of the current buffer, select "Abort Buffer" from 
  319. the "File" menu or type <Esc> then <T>.
  320.  
  321. /*HH2!2*/3.14. Windows
  322.  
  323. To split the screen into two windows select "2 windows" from the "Misc" 
  324. menu or type <Esc> then <2>.
  325.  
  326. To switch between windows select "swap window" from the "misc" menu or 
  327. type <Ctrl><S>. If you have a mouse you may simply click the mouse in the 
  328. appropriate window.
  329.  
  330. To move the window boundary select "move boundary" from the "misc" menu 
  331. or type <Esc> then <M>. The boundary may then be moved up and down with 
  332. the cursor keys. Type <Esc> when finished.
  333.  
  334. To go back to just one window select "1 Windows" from the "Misc" menu or 
  335. type <Esc> then <1>.
  336.  
  337. Windows are not tied to particular buffers, you may edit any buffer in 
  338. any window.
  339.  
  340. /*HH2!2*/3.15. Miscellaneous
  341.  
  342. To delete a line type <Ctrl><Y>, the line will automatically be put in 
  343. the workspace.
  344.  
  345. To erase from the cursor until the end of a line type <Ctrl><K>.
  346.  
  347. To view a table of ASCII characters and their codes, select
  348. "Select ASCII Table" from the "Misc" menu or type <Alt><F1>.
  349.  
  350. /*HH121*/      4. FOLDS
  351.  
  352. /*HS!!2*/4.1. Introduction
  353.  
  354. It is sad that more people don't use folding editors. Once mastered, 
  355. folds can help enormously in structuring large complex programs. I 
  356. suspect the main reason folds have not caught on, is that the existing 
  357. folding editors are too complex to use. They require the learning of many 
  358. new and difficult concepts. Also they often have special file formats 
  359. that cannot be read by compilers so you have to have two files going at 
  360. the same time, one with and one without folds.
  361.  
  362. EasyFold attempts to get round these problems, by making folds behave 
  363. more like ordinary text. For example in EasyFold there are no special 
  364. commands for copying folds from one place to another, you simply use the 
  365. block copy procedure as for any other text.
  366.  
  367. The best way to learn about folds is to see them in action, to do this 
  368. try editing "FOLD.HLP" and following it's instructions.
  369.  
  370. /*HH2!2*/4.2. How to Make/Delete a Fold
  371.  
  372. To make a fold move to the line you want the fold at and select "Create 
  373. Fold" from the "Fold" menu or type <Ctrl><U>.
  374.  
  375. To delete a fold move to the line of the fold and select "Delete Fold" 
  376. from the "Fold" menu or type <Ctrl><D>.
  377.  
  378. NOTE: It is not possible to delete a fold that is "busy", i.e. that is 
  379. either closed itself or is being used to close a fold above it. To relase 
  380. a fold from use select "Release Fold" from the "Fold" menu or type 
  381. <Ctrl><R>.
  382.  
  383. /*HH2!2*/4.3. How to "Open" and "Close" Folds
  384.  
  385. If you have a mouse you may toggle folds open and closed with the right 
  386. mouse button. If you do not have a mouse select "Open Fold"/"Close Fold" 
  387. from the "Fold" menu or type <Ctrl><PgUp>/<Ctrl><PgDn>.
  388.  
  389. To open a fold and all the lower level folds within it, select "Open Fold 
  390. & Chilren" from the "Fold" menu or type <Esc> then <Ctrl><PgUp>.
  391.  
  392. To open all the folds in the entire file select "Open All Folds" from the 
  393. "Fold" menu or type <Esc> then <PgUp>.
  394.  
  395. /*HH2!2*/4.4. Changing Fold Levels
  396.  
  397. To change the level of a fold select "Promote Fold"/"Demote Fold" from 
  398. the "Fold" menu or type <Esc> followed by either <Left> or <Right>.
  399.  
  400. To promote a fold and all the lower level folds within it, select 
  401. "Promote Fold & Chilren" from the "Fold" menu or type <Esc> then 
  402. <Ctrl><right>.
  403.  
  404. To demote a fold and all the lower level folds within it, select "Demote 
  405. Fold & Chilren" from the "Fold" menu or type <Esc> then <Ctrl><left>.
  406.  
  407. /*HH232*/4.5. Fold Restrictions
  408.  
  409. There are a few restrictions on where you can put folds depending on what 
  410. language you are using.
  411.  
  412. /*HS!!3*/    4.5.1. `C'/C++
  413.  
  414. You should not put a fold on a line with #define, #if etc, also you 
  415. should not put a fold inside a comment, i.e.,
  416.  
  417. /* A fold at the start of this line is ok */
  418. /*
  419. but A fold at the start of this line is not.
  420. */
  421.  
  422.  
  423. /*HH3!3*/    4.5.2. MODULA2
  424.  
  425. You should not put a fold inside a comment, i.e.,
  426.  
  427. (* A fold at the start of this line is ok *)
  428. (*
  429. but A fold at the start of this line is not.
  430. *)
  431.  
  432.  
  433. /*HH3!3*/    4.5.3. Pascal
  434.  
  435. You should not put a fold inside a comment, i.e.,
  436.  
  437. { A fold at the start of this line is ok }
  438. {
  439. but A fold at the start of this line is not.
  440. }
  441.  
  442.  
  443. /*HH3!3*/    4.5.4. TeX / LaTeX
  444.  
  445. EasyFold stores the fold information for .TEX files as a comment at the 
  446. end of the line before a fold. This can create problems if you put a fold 
  447. at the start of a paragraph which is preceeded by another paragraph (as 
  448. opposed to some kind of section heading). If there is only one blank line 
  449. between the two paragraphs then this "empty" line will be filled with a 
  450. comment. LaTeX will then assume that you have a single large paragrph. To 
  451. avoid this problem you could have two lines between each paragraph or 
  452. better still restrict the folds to the chapter and section headings.
  453.  
  454. \chapter{A Fold on This Line is Fine}
  455. blah blah blah blah blah blah
  456. blah blah blah blah blah blah
  457.                                <---- single blank line
  458. But a fold on this line could cause problems
  459. blah blah blah blah blah blah
  460. blah blah blah blah blah blah
  461.  
  462. /*HH121*/      5. SEARCH AND REPLACE
  463.  
  464. /*HS!!2*/5.1. Search
  465.  
  466. To search for a string select "Search" from the "Search" menu or type 
  467. <F2>. You will then be prompted to enter the string to be searched. Type 
  468. the string followed by <Enter>. You will then be given a list of search 
  469. options:
  470.  
  471. * S-Case sensitive: The string is only found if it matches the case of 
  472. search string.
  473.  
  474. * V-Variable: The string is only found if is bordered by non-alphanumeric 
  475. characters on both sides. For example the `i' in "This" will not be found 
  476. but the `h' in "if (h == 3)" will be found.
  477.  
  478. * R-Reverse: The search is performed backwards.
  479.  
  480. * A-All buffers: The search is performed accross all buffers starting 
  481. from the current buffer.
  482.  
  483. Type in the option letters followed by <Enter>.
  484.  
  485. NOTE:  To put a carriage return into the search or replace string type 
  486. <Ctrl><N>.
  487.  
  488. NOTE:  When being asked for the search or replace strings you may type 
  489. <Up> or <Down> to retrieve previously used strings.
  490.  
  491. /*HH2!2*/5.2. Repeat Search
  492.  
  493. To repeat the search operation select "Repeat Search" from the {Search} 
  494. menu or type <Alt><F2>.
  495.  
  496. /*HH2!2*/5.3. Search and Replace
  497.  
  498. To search and replace a string select "Search & Replace" from the 
  499. "Search" menu or type <Ctrl><F2>. You will then be prompted to enter the 
  500. string to be searched. Type the string followed by <Enter>. You will then 
  501. be given a list of search options. Type in the option letters followed by 
  502. <Enter>. You will then be prompted to enter the string to replace the 
  503. search string. Type the string followed by <Enter>.
  504.  
  505. When the search string is found you will be prompted with the message:
  506.  
  507. Yes/No/Last/Rest/Cancel
  508.  
  509. Enter the first letter of one of the words to get the following effects:
  510.  
  511. * Yes: Replace this occurrence of the string.
  512.  
  513. * No: Do not replace this occurance of the string.
  514.  
  515. * Last: Replace this occurrence of the string but then do not continue 
  516. searcing.
  517.  
  518. * Rest: Replace this, and all other, occurrences of the string without 
  519. further prompting.
  520.  
  521. * Cancel: Cancel the search.
  522.  
  523.  
  524. /*HH121*/      6. WORD WRAPPING
  525.  
  526. EasyFold supports "live" word-wrap, that is to say paragraph will be 
  527. formatted as you type rather than having to type special formatting 
  528. commands.
  529.  
  530. /*HS!!2*/6.1. To Word-Wrap a File
  531.  
  532. To word wrap a file select "word-wrap" from the "misc" menu or type <Esc> 
  533. then <W>.
  534.  
  535. When you word wrap a file in one buffer it has no effect on any other 
  536. buffer so for example you could edit word wrapped documentation files in 
  537. some buffers and non-word-wrapped source code files in other buffers at 
  538. the same time, you could even have both on screen at the same time in 
  539. different windows.
  540.  
  541. EasyFold automatically detects whether a file has been word wrapped, so 
  542. once a file has been word wrapped once you will not keep having to 
  543. re-issue the word-wrap command when you edit the file on different 
  544. occasions.
  545.  
  546. /*HH2!2*/6.2. Un-Word-Wrap
  547.  
  548. To un-word-wrap a document select un-word-wrap from the "misc" menu or 
  549. type <Esc> then <U>.
  550.  
  551. There are two ways to un-word-wrap a document,
  552.  
  553. 1. The soft returns may be removed leaving a file with some possibly 
  554. quite long lines. Files un-word-wrapped in this manner can easily be 
  555. wrapped again.
  556.  
  557. 2. The soft returns may be converted to hard returns.
  558.  
  559. WARNING: This option must be used with great care. Once a file has been 
  560. un-word-wrapped in this way it cannot easily be wrapped again, you will 
  561. have to manually delete all the unwanted hard returns.
  562.  
  563. /*HH2!2*/6.3. Word-Processor Compatibility
  564.  
  565. EasyFold as well as most word-processors for the PC use the following 
  566. convention for "hard" and "soft" returns:
  567.  
  568. Hard return = <CARRIAGE RETURN> followed by <LINE FEED>
  569.  
  570. Soft return = <CARRIAGE RETURN>
  571.  
  572. A "hard" return is the character that is placed in a file when you type 
  573. <Enter> on the keyboard. A "soft" return is a character placed in your 
  574. file by the editor itself to break a line that has become too long. Soft 
  575. returns are added and removed by the editor automatically as you type.
  576.  
  577. /*HH121*/      7. INTERACTING WITH DOS
  578.  
  579. You can temporarily go to DOS without leaving the editor in three 
  580. different ways.
  581.  
  582. 1. Shell to DOS and stay there until you type `exit'.
  583. 2. Execute the current line as a DOS command.
  584. 3. As 2 but then remain in DOS until you type `exit'
  585.  
  586. To shell to DOS and stay there until you type `exit' select "Shell to 
  587. DOS" from the "DOS" menu or type <Esc> <D>.
  588.  
  589. To execute the current line as a DOS command select "Execute Line" from 
  590. the "DOS" menu or type <Esc> then <Alt><D>.
  591.  
  592. To execute the current line as a DOS command and then remain in a DOS 
  593. shell select "Execute Line Then DOS" from the "DOS" menu or type <Esc> 
  594. then <Ctrl><D>.
  595.  
  596. /*HS!!2*/7.1. Maximizing DOS memory
  597.  
  598. You can get more memory when shelling out to DOS by instructing EasyFold 
  599. to save its buffers in temporary files. See section 13.7.
  600.  
  601. /*HH1!1*/      8. ACCESSING EasyFold VARIABLES
  602.  
  603. Virtually any time EasyFold asks you to type in a string (for example a 
  604. search string or a filename) you may type <F1> to get access to a list of 
  605. internal variables. This enables you to make extremely powerful macros. 
  606. For example if you have two files on screen, one containing a list of 
  607. errors and line numbers in the other. You could make a macro to copy a 
  608. line number into the workspace, then switch to the other window and go to 
  609. the line number that is in the workspace!
  610.  
  611. The variable you have access to are as follows:
  612.  
  613. * Word at Cursor: The word that the cursor is under.
  614. * Workspace: The contents of the workspace.
  615. * Keyboard: A string to be entered from the keyboard i.e., if a macro is 
  616. being executed the macro will temporarily pause until the string is 
  617. entered manually.
  618. * Filename: The name of the file.
  619. * Cursor Charcter: The character that the cursor is under.
  620. * Cursor Line: The contents of the line that the cursor is on.
  621. * Line Number: The line number of the cursor.
  622. * Column Number: The column number of the cursor.
  623.  
  624. /*HH121*/      9. MACROS
  625.  
  626. /*HS!!2*/9.1. Introduction
  627.  
  628. A macro is a sequence of keystrokes that performs a certain task. Macros 
  629. can be assigned to a single key (EasyFold reserves the keystrokes 
  630. <Alt><A> to <Alt><Z> for this purpose) or alternativly may be assigned 
  631. two letter names.
  632.  
  633. Example: Say you wished to add the text "/*" and "*/" to the sart and end 
  634. of many lines (this turns a line in to a `C' style comment). The 
  635. keystrokes we need to type are <Home>, </>, <*>, <End>, <*>, </>. We can 
  636. assign this sequence of six keys to one of the <Alt> keys (say <Alt><Z>) 
  637. so that each time we type <Alt><Z> the sequence of six keys gets executed.
  638.  
  639. Macros can be made in two distinct ways:
  640.  
  641. * recorded: This is where you simply perform the sequence of keys that 
  642. comprise the macro and EasyFold records them.
  643.  
  644. * compiled: This is where you edit a file which defines the keystrokes of 
  645. a macro and then ask EasyFold to "compile" the file into a macro.
  646.  
  647. /*HH2!2*/9.2. Recording a Macro
  648.  
  649. To record a macro:
  650.  
  651. 1. select "define Macro" from the macro menu or type <F5>, you will now 
  652. be asked to select which <Alt> key you wish to use.
  653.  
  654. 2. You will now be asked to enter a short description of the operation of 
  655. the macro (descriptions of macros may be viewed, see section 9.8). A 
  656. description is not essential and if you do not wish to give one, just 
  657. type <Enter>.
  658.  
  659. 3. From this point onwards your key strokes will be recorded. Type the 
  660. sequence of keys. When you have completed all the keystrokes press <F5> 
  661. to end the recording.
  662.  
  663. NOTE: You may not execute or define macros from within macros.
  664.  
  665. NOTE: Single key macros are not saved between editing sessions unless you 
  666. specifically request this by selecting "Save Macros" from the "Macros" 
  667. menu or typing <Esc> then <F5>.
  668.  
  669. NOTE: Single key macros can contain up to 200 keystrokes.
  670.  
  671. /*HH2!2*/9.3. Recording a Two Character Macros
  672.  
  673. Two character macros can be recorded in the same manner as single key 
  674. macros but they are executed slightly differently, if the macro name is 
  675. "AB" then these two characters must be typed into the file you are 
  676. editing, you then select "Execute Two Letter Macro" from "Macros" menu or 
  677. type <F6>, the two characters will immediately be erased and the macro 
  678. executed. You define a two letter macro in the following way:
  679.  
  680. 1. select "Define Two Letter Macro" from the "Macros" menu or type 
  681. <Ctrl><F6>
  682.  
  683. 2. You will now be asked to type in the two character name of the macro, 
  684. these must constitute a valid file name without an extension, i.e., must 
  685. not include a `.'.
  686.  
  687. 3. From this point onwards your key strokes will be recorded. When you 
  688. have completed all the keystrokes press <F5> to end the recording.
  689.  
  690. NOTE: Two letter macros are saved automatically after defining them.
  691.  
  692. NOTE: Single key macros can contain up to 2000 keystrokes.
  693.  
  694. /*HH232*/9.4. Compiling Macros
  695.  
  696. Macros may be compiled from ordinary text in a buffer. The format of a 
  697. macro is as follows:
  698.  
  699. * The first line in the buffer is the macro description.
  700.  
  701. * Ordinary (alphanumeric) keys like 9-9 and A-Z are each separated by 
  702. spaces.
  703.  
  704. * Special keys like <F5> or two-key combinations like <Ctrl><G> are 
  705. written as strings, for example <F5> is wriiten "F5" and <Ctrl><G> is 
  706. written "CTRL-G".
  707.  
  708. Example: Take the macro desribed at the start of the chapter about 
  709. turning a line of text into a `C' style comment. The file needed to 
  710. create this macro would look something like this:
  711.  
  712. Turn line into `C' comment
  713. HOMEKEY / * ENDKEY * /
  714.  
  715. Once you have typed in the text of your macro select "Compile Macro" form 
  716. the "Macros" menu or type <Esc> then <Alt><F5>. You will then be prompted 
  717. for the key you wish to assign the macro to.
  718.  
  719. /*HS!!3*/    9.4.1. Entering key names
  720.  
  721. You can enter the names of non-ASCII keys directly into the file ready 
  722. for macro compilation by selecting "Insert Key Name" from the "Macros" 
  723. menu or typeing <Esc> then <K>.
  724.  
  725. /*HH2!2*/9.5. Editing Existing Macros
  726.  
  727. Macros may be edited in a buffer even when they were originally recorded 
  728. (as opposed to compiled). To edit a macro in the current buffer select 
  729. "Edit Macro" from the "Macros" menu or type <Esc> then <Ctrl><F5>. You 
  730. will then be asked to type in the macro letter. The macro will then 
  731. appear in the buffer ready to be edited and compiled as discussed in 
  732. section 9.3.
  733.  
  734. /*HH2!2*/9.6. Mouse Macros
  735.  
  736. You can define the action of pressing <Alt> and clicking the left hand 
  737. mouse button to mean:
  738.  
  739. 1. Take the cursor to the position specified by the mouse.
  740. 2. Then enter a certain key. This key can be a macro key or any other key.
  741.  
  742. this is very usefull when you want to perform an operation on parts of 
  743. your text scattered around the screen. For example if you had written 
  744. some text and had omitted to capitalise the first letter of each 
  745. sentence, you could define the Alt-Mouse key to be <Ctrl><V> (see section 
  746. 3.9) then while pressing the <Alt> key click the mouse on the offending 
  747. letters.
  748.  
  749. To define this "Alt-mouse" key select "Define Alt-Mouse" from the 
  750. "Macros" menu and then enter the key.
  751.  
  752. /*HH232*/9.7. Special Macro Features
  753.  
  754. /*HS!!3*/    9.7.1. Repeat Macro Till Fail
  755.  
  756. You may ask for the last used macro to be repeated until there is some 
  757. kind of failure. A failure is any operation that would cause EasyFold to 
  758. produce a warning message, for example attempting to move the cursor down 
  759. when you are already at the bottom of a file or searching for a string 
  760. that is not there.
  761.  
  762. /*HH3!3*/    9.7.2. Batch Mode
  763.  
  764. It is possible to ask EasyFold to execute a two letter macro from the 
  765. command line. This is very useful if you wish to perform operations on 
  766. files on a regular basis from a batch file.
  767.  
  768. To execute a two letter macro from the command line, add the switch 
  769. "\M:xx" to the end of the EasyFold command line, where "xx" is the macro 
  770. name.
  771.  
  772. If you wish to quit the editor as soon as the macro is completed use the 
  773. switch "\Z:xx".
  774.  
  775. /*HH2!2*/9.8. Viewing Macros Descriptions
  776.  
  777. To view a list of macro descriptions select List One Letter Macros from 
  778. the Macros menu or type <ESC> then <CTRL-L>.
  779.  
  780. /*HH121*/     10. PRINTING
  781.  
  782.  
  783. To print a buffer select "Print" from the "Misc" menu or type <Ctrl><P>. 
  784. You will then be prompted as to whether you wish the contents of closed 
  785. folds to be printed, type Y or N.
  786.  
  787. /*HS!!2*/10.1. Printer control
  788.  
  789. See section 13.5.
  790.  
  791. /*HH2!2*/10.2. Printing a Block of Text
  792.  
  793. To print a block of text, fist highlight the block as described in 
  794. section 3.6, then select "Print" from the "Misc" menu or type <Ctrl><P>. 
  795. You will then be prompted as to whether you wish the contents of closed 
  796. folds to be printed, type Y or N.
  797.  
  798. /*HH1!1*/     11. REMAPPING THE KEYBOARD
  799.  
  800. EasyFold comes with a special program called "SETKEYS.EXE" which allows 
  801. you to redefine which key(s) perform which function. There are a few 
  802. restrictions:
  803.  
  804. * A funtion may only be called via a maximum of two keystrokes 
  805. (combination keystrokes like \twokeys{\ctrl}{F9} count as a single 
  806. keystroke).
  807.  
  808. * All two-key sequences must start with the same "command" key.
  809.  
  810. Before running the program first of all make sure that "SETKEYS.EXE" is 
  811. on the same subdirectory as the editor executable ("EF.EXE"). Run the 
  812. program by simply typing SETKEYS at the DOS prompt.
  813.  
  814. The program displays a box containing a function description and the 
  815. current keystroke(s) that execute that function. You may browse up and 
  816. down the list of functions using the <UP> and <DOWN> keys.
  817.  
  818. To change the keystroke(s) type `C' followed by the keystroke(s) you 
  819. desire for that function.
  820.  
  821. To reset a function to its default keystroke(s) type `D'.
  822.  
  823. To reset all functions to their default keystroke(s) type `A'.
  824.  
  825. To save all your changes type `S'.
  826.  
  827. To quit the program without saving type `Q'.
  828.  
  829. /*HH121*/     12. MISCELLANEOUS
  830.  
  831. /*HS!!2*/12.1. Bracket Matching
  832.  
  833. EasyFold can find matching brackets `(' `)' and `{' `}'. To find a 
  834. particular brackets partner, position the cursor under the bracket and 
  835. type <Ctrl><]>, the cursor will now be positioned under the partner.
  836.  
  837. /*HH2!2*/12.2. View Entry Screen
  838.  
  839. It is often useful to be able to see the entry screen as it was just 
  840. before entering the editor, for example if there are error messages from 
  841. a compiler on the screen. To view the entry screen select "View Entry 
  842. Screen" from the "Dos" menu or type <Esc> then <V>.
  843.  
  844. /*HH2!2*/12.3. Rolling Back-up System
  845.  
  846. EasyFold makes back-ups of files in two distinct ways.
  847.  
  848. 1. The conventional system: When you alter an existing file, EasyFold 
  849. renames the original version to being a ".BAK" file.
  850.  
  851. 2. The rolling back-up system: When you alter an existing file, EasyFold 
  852. renames the original version to "BAK1.EF" (whatever your file was called) 
  853. and shunts "BAK2.EF", "BAK3.EF" etc along one place in a list. The number 
  854. files in this list is configurable, see section 13.6.
  855.  
  856. NOTE: The rolling backup list contains whatever files you have been 
  857. editing. There is not a separate backup list for each file.
  858.  
  859. /*HH121*/     13. EDITOR CONFIGURATION
  860.  
  861. /*HS!!2*/13.1. Introduction
  862.  
  863. Many aspects of EasyFolds operation may be configured while the editor is 
  864. still running. To get to the "options" screen select "Editor Options" 
  865. from the "Misc" menu or type <Esc> then <O>. To select an option simply 
  866. position the highlight bar over that option, to change its value simply 
  867. press <Left> or <Right> or, if you have a mouse, press the left or right 
  868. hand buttons. To "save" a configuration so that it will be the same in 
  869. the next editing session press <S>. To return to editing press <Esc>.
  870.  
  871. The options that can be set are as follows...
  872.  
  873. /*HH232*/13.2. Special Character Displays
  874.  
  875. /*HS!!3*/    13.2.1. Tab Size
  876.  
  877. This defines the size of the tab character field. The default value is 4.
  878.  
  879. /*HH3!3*/    13.2.2. The Display of the Tab Character
  880.  
  881. This controls the way that tab characters will appear on the screen.
  882.  
  883. /*HH3!3*/    13.2.3. The Display of Hard/Soft Return Characters
  884.  
  885. These control how the "hard" and "soft" return characters will appear on 
  886. the screen. For an explanation of "hard" and "soft" return characters see 
  887. chapter 6.
  888.  
  889. /*HH3!3*/    13.2.4. Other Control Chars
  890.  
  891. This controls the way that the ASCII characters below 32 will appear on 
  892. the screen.
  893.  
  894. /*HH2!2*/13.3. Rows and Columns
  895.  
  896. This switches between various screen modes.
  897.  
  898. EasyFold can switch between many screen modes in the same editing 
  899. session. With a VGA card it can change between 25,28,43 and 50 line 
  900. modes. If you have super-VGA you may be able to edit in some other modes 
  901. for example 132 column modes. The actual mode numbers will be card 
  902. dependant and you have to tell EasyFold these numbers in advance. 
  903. EasyFold can access up to three extra screen modes by examining the 
  904. environment variables EXMOD1, EXMOD2 and EXMOD3. For example on a 8900 
  905. based SVGA card, mode 90 is a 132x60 text mode so you would add the 
  906. following line to your autoexec.bat to access this,
  907.  
  908. SET EXMOD1=90
  909.  
  910. To find out what extra screen modes are available on your machine consult 
  911. your video card manual.
  912.  
  913. NOTE: At the time of writing only a few mouse drivers support 132 column 
  914. modes.
  915.  
  916.  
  917. /*HH2!2*/13.4. Auto Tab
  918.  
  919. This controls the behaviour of the cursor after typeing <Enter>. With 
  920. auto-tab off, the cursor simply goes to the start of the next line. With 
  921. auto-tab on EasyFold will insert exactly the same whitespace characters 
  922. (tab and space) at the start of the line as appeared at the start of the 
  923. previous line.
  924.  
  925. /*HH232*/13.5. Colours
  926.  
  927. /*HS!!3*/    13.5.1. Text Foreground/Background 
  928.  
  929. These options contol the normal text forground and background colours.
  930.  
  931. /*HH3!3*/    13.5.2. Special Char Colour 
  932.  
  933. This controls the colour special charcters will appear in. Special 
  934. characters are those with ASCII codes less than 32, for example tab and 
  935. carriage-return.
  936.  
  937. /*HH232*/13.6. Printing
  938.  
  939. /*HS!!3*/    13.6.1. Print to File 
  940.  
  941. If print to file is set to "YES" then whenever you print any text the 
  942. text will be sent to a file. EasyFold will prompt you for the file name 
  943. each time.
  944.  
  945. /*HH3!3*/    13.6.2. Pinter New Line 
  946.  
  947. Printer new line controls what characters are sent to your printer at the 
  948. end of each line. laser printers often require both carriage return and 
  949. line feed characters whereas dot matrix printers often require just the 
  950. carriage return.
  951.  
  952. /*HH3!3*/    13.6.3. Form Feed After Print
  953.  
  954. If this is set to "YES" the a form-feed character will be sent to the 
  955. printer after each printout. This is useful with laser printers because 
  956. they will not eject any page that is not full.
  957.  
  958. /*HH3!3*/    13.6.4. Printer Page Length 
  959.  
  960. This controls the number of lines that will be printed out before a 
  961. form-feed.
  962.  
  963. /*HH2!2*/13.7. Number of Back Ups
  964.  
  965. This sets the number of back-ups made by the rolling back-up system. See 
  966. section 12.3.
  967.  
  968. /*HH2!2*/13.8. Max Memory for Shell
  969.  
  970. If you set this to "YES" EasyFold will save its buffers in temporary 
  971. files before shelling out to DOS. See chaper 7.
  972.  
  973. /*HH2!2*/13.9. Temp File Directory
  974.  
  975. This tells EasyFold where to write it's temporary files and back-ups for 
  976. the rolling back-up system.
  977.  
  978. /*HH2!2*/13.10. Keyboard Repeat Rate
  979.  
  980. There are three keyboard repeat rate settings.
  981.  
  982. * FAST: The keyboard will repeat at a rate of 10 characters per second.
  983.  
  984. * SLOW: The keyboard will repeat at a rate of 30 characters per second.
  985.  
  986. * SAME AS DOS: EasyFold will not change the repeat rate.
  987.  
  988. /*HH2!2*/13.11. Cursor appearance
  989.  
  990. One option that can not be set from within EasyFold is the way the cursor 
  991. is handled. With some non-standard video cards (especially in laptops) 
  992. the cursor may not appear properly (or at all!) in which case you can 
  993. tell EasyFold not to change the cursor appearance by setting an 
  994. environment variable "CHANGECUR" equal to "0". This is done by adding the 
  995. line:
  996.  
  997. SET CHANGECUR=0
  998.  
  999. in your "AUTOEXEC.BAT".
  1000.  
  1001. /*SH1!1*/
  1002. /*#CP=00000:XX=99*/
  1003.